const weexFunction = weex.requireModule('WeexFunction');
import navigator from "@/_js/navigator"; 

//系统配置
function Config() {}

Config.prototype.OPT_UP_DOWN = "upDownColor"; // 涨跌颜色配置标识
Config.prototype.OPT_CURRENT_BZ = "priceUnit"; // 计价单位
Config.prototype.OPT_USD_CNY_RATEI = "usdCnyRatei"; // 汇率

// 默认的所有配置
Config.OPTIONS = [Config.OPT_UP_DOWN, Config.OPT_CURRENT_BZ, Config.OPT_USD_CNY_RATEI];

// websocket链接
// Config.prototype.websocketUrl = "ws://119.8.118.227:8070/depth/";
Config.prototype.websocketUrl = "ws://190.92.213.6:8070/depth/";

// 资源图片地址
Config.prototype.resImgPath = "https://weex.obs.cn-south-1.myhuaweicloud.com/image/";

// 涨跌颜色设置, 为true表示红涨绿跌， 否则是绿涨红跌 （需要异步读取）
Config.prototype.upDownColor = true; 

// 计价单位 USD CNY（需要异步读取）
Config.prototype.priceUnit = 'USD'; 

// 汇率 USD CNY（需要异步读取）
Config.prototype.usdCnyRatei = '0'; 

// 是否是登录状态
Config.prototype.isLogin = !!weex.config.isLogin;

// 邀请链接-注册
Config.prototype.inviteUrl = 'https://router.vtrading.com/router/index.html?path=H5%2Fpages%2Fregister%2Fregister.html%3Fcode%3D';

// 下载
Config.prototype.download = 'https://wap.vtrading.com/H5/pages/download/download.html';


// 初始化，读取系统配置
Config.prototype.init = function(callback, options = Config.OPTIONS){

  var initIndex = 0;
  var maxCount = options.length;
  var isCallback = false;

  var callbackHandler = ()=>{
    initIndex++;
    if(initIndex >= maxCount && !isCallback){
      isCallback = true;
      // 触发回调
      callback&&callback();
    }
  }

  // 如果有要加载的配置项，则进行加载
  if(options.length){
    // 循环加载配置
    for(let i = 0; i < options.length; i++){
      let callName = options[i];
      this["_"+callName](callbackHandler);
    }
  }else{ // 否则直接回调
    callback&&callback();
  }
}

/***********************公开：供外部使用的方法******************************* */
// obs图片拼接
Config.prototype.img = function (path){
  return this.resImgPath+path;
}

// 选择涨跌色
Config.prototype.upDown = function(isUp = 0, hong="udRed-t1",lv="udGreen-t1", df="text2"){

  // 如果没有值也是灰色
  if(isUp == undefined){
    return df;
  }

  var type = typeof(isUp);
  if(type == 'string' || type == 'number'){

    if(parseFloat(isUp) == 0){
      return df;
    }

    isUp = parseFloat(isUp) >= 0;
  }

  // 如果是红涨绿跌
  if(this.upDownColor){
    return isUp ? hong : lv;
  }else{ // 否则是绿涨红跌
    return isUp ? lv : hong;
  }
}

// 读取涨跌文字颜色
Config.prototype.upDownFont = function(isUp, hong="udRed-t1",lv="udGreen-t1", df="text2"){
  return this.upDown(isUp,hong,lv,df);
}

// 读取涨跌背景颜色
Config.prototype.upDownBg = function(isUp, hong="udRed1",lv="udGreen1", df="bg3"){
  return this.upDown(isUp,hong,lv,df);
}

// 读取涨跌线色
Config.prototype.upDownBr = function(isUp, hong="udRed-b1",lv="udGreen-b1", df='bk2'){
  return this.upDown(isUp,hong,lv,df);
}

// 登录判断
Config.prototype.forceLogin = function (){
  if (this.isLogin){
    return true;
  }
  navigator.openNative('login');
  return false;
}

// 将科学计数法转换成数字字符串
Config.prototype.toNonNum = function(num){
  num = num + "";
  if(num.indexOf("e") != -1){
    var m = num.match(/\d(?:\.(\d*))?e([+-]\d+)/);
    return parseFloat(num).toFixed(Math.max(0, (m[1] || '').length - m[2]));
  }
  return num;
};

/***********************初始化：读取配置的方法******************************* */
// 读取涨跌颜色配置
Config.prototype._upDownColor = function(callback){
  weexFunction.getConfig("green_rose_red",(value)=>{
    this.upDownColor = value == "NO"? false : true;
    callback();
  });
}

// 计价单位
Config.prototype._priceUnit = function(callback){
  weexFunction.getConfig("current_bz",(value)=>{
    this.priceUnit = value == "USD" ? "USD" : "CNY";
    callback();
  });
}

// 汇率
Config.prototype._usdCnyRatei = function(callback){
  weexFunction.getConfig("usd_cny_ratei",(value)=>{
    this.usdCnyRatei = value ? value: "0";
    callback();
  });
}

export default new Config();